package org.eiahe.hr.employeeRelation.service;

import org.eiahe.hr.employeeRelation.domain.bo.TechnologyAgreementBo;
import org.eiahe.hr.employeeRelation.domain.vo.TechnologyAgreementVo;
import org.ehe.common.mybatis.core.page.PageQuery;
import org.ehe.common.mybatis.core.page.TableDataInfo;

import java.util.List;

/**
 * 技术研发协议服务接口
 *
 * @author zhangnn
 */
public interface ITechnologyAgreementService {

    /**
     * 查询技术研发协议列表
     *
     * @param bo 技术研发协议业务对象
     * @return 技术研发协议列表
     */
    List<TechnologyAgreementVo> selectTechnologyAgreementList(TechnologyAgreementBo bo);

    /**
     * 查询技术研发协议列表(分页)
     *
     * @param bo        技术研发协议业务对象
     * @param pageQuery 分页参数
     * @return 技术研发协议分页列表
     */
    TableDataInfo<TechnologyAgreementVo> selectTechnologyAgreementList(TechnologyAgreementBo bo, PageQuery pageQuery);

    /**
     * 通过协议ID查询技术研发协议信息
     *
     * @param agreementId 协议ID
     * @return 技术研发协议信息
     */
    TechnologyAgreementVo selectTechnologyAgreementById(Long agreementId);

    /**
     * 新增技术研发协议
     *
     * @param bo 技术研发协议业务对象
     * @return 结果
     */
    Boolean insertTechnologyAgreement(TechnologyAgreementBo bo);

    /**
     * 修改技术研发协议
     *
     * @param bo 技术研发协议业务对象
     * @return 结果
     */
    Boolean updateTechnologyAgreement(TechnologyAgreementBo bo);

    /**
     * 批量删除技术研发协议
     *
     * @param agreementIds 需要删除的协议ID数组
     * @return 结果
     */
    Boolean deleteTechnologyAgreementByIds(Long[] agreementIds);
}